﻿using System.Collections.Generic;
using System.Linq;

namespace Szabalyrendszer
{
    public class HarciHelyzetSzamontarto
    {
        public Dictionary<KarakterLap, List<HarciHelyzet>> Resztvevok { get; set; }
        public TamadasSzamolo TamadasSzamolo { get; set; }
        public TamadasHatasSzamolo TamadasHatasSzamolo { get; set; }

        public int AktualisKe(KarakterLap karakter)
        {
            return Resztvevok[karakter].Sum(hh => hh.Ke);
        }

        public void TamadoCsel(KarakterLap tamado, KarakterLap celpont, List<HarciCsel> harciCselek, KidobottSebzes sebzes)
        {
            var elszenvedettSebzes = TamadasSzamolo.TamadasKiszamolasa(celpont.Ve, celpont.Fp, celpont.Vertezet, celpont.Sfe, TamadastOsszeszamol(tamado, celpont, harciCselek, sebzes));
            celpont.SebzestSzenved(elszenvedettSebzes);
        }

        private Tamadas TamadastOsszeszamol(KarakterLap tamado, KarakterLap celpont, List<HarciCsel> harciCselek, KidobottSebzes sebzes)
        {
            var harcertekek = tamado.Harcertekek();
            return new Tamadas
            {
                Te = harcertekek.KarakterFegyverNelkuliHarcertek.Te + harcertekek.KarakterFegyverforgatoKar.Te,
                TulutesKuszob = harcertekek.KarakterFegyverNelkuliHarcertek.TulutesKuszob + harcertekek.KarakterFegyverforgatoKar.TulutesKuszob,
                Sebzesek = new List<KidobottSebzes> { sebzes }
            };
        }
    }
}
